home *** CD-ROM | disk | FTP | other *** search
/ MacFormat 1994 November / macformat-018.iso / Shareware City / Updaters / CDK 7.0.4 Update / Release Notes / Symantec C++ release notes < prev   
Encoding:
Text File  |  1994-07-26  |  7.4 KB  |  162 lines  |  [TEXT/KAHL]

  1. Symantec C++ 7.0.4 release notes
  2. ================================
  3.  
  4. Copyright © 1994 Symantec Corporation.  All Rights Reserved.
  5.  
  6. - Fixes a code generation bug with PowerPC compilers with structure assignment.
  7.  The source looked like:
  8.  
  9.      p->str1 = p->str2 = expression
  10.      
  11.  When str1 was a member of the struct.  
  12.  
  13. - Fixed a benign code generation inneficiency which caused stack frame sizes to
  14.   grow unnecessarily after a function that called an unprototyped function with
  15.   more than 8 arguments.
  16.  
  17. - Fixes problem with line number records in the PowerPC compilers, only a
  18. portion of my fix had made it in.
  19.  
  20. - Fixes a problem with preprocessing files that contain #pragma options() and
  21. #if __option directives being truncated.
  22.  
  23. - No longer places the full pathname of files into the XCOFF result.  This
  24. means that all build scripts will need to be modified to add parameters to
  25. makesym in order to get it to recognize and map all of the files involved.
  26.  
  27. - Implements testability for ALL of the options in all compilers, only valid
  28. options for any given compiler will be accepted as inputs.  Also added all
  29. options available in THINK C for backward compatibility, and added an option
  30. for mapcr which was omitted in the first round.
  31.  
  32.     ansi                Y    0/1        1 if ANSI conformance is on
  33.     ansi_relaxed        Y    0/1        1 if relaxed ANSI conformance is on
  34.     ansi_strict            Y    0/1        1 if strict ANSI conformance is on
  35.     read_header_once    Y    0/1        1 if read each header file once is on
  36.     chars_unsigned        Y    0/1        1 if 'Treat chars as unsigned' is on
  37.     pack_enums            Y    0/1        1 if 'enums are always ints' is off
  38.     mc68020+            Y    0/1        1 if 68020 code generation is enabled
  39.     mc68881+            Y    0/1        1 if 68881 code generation is enabled
  40.     mc68881_trans+        Y    0/1        1 if 68881 will be used for transcendentals
  41.     double_8+            N    0/1        1 if 8 byte double is turned on
  42.     struct_align        Y    1/2/4    Value of 1, 2, or 4 from structure alignment setting
  43.     pcrel_strings+        N    0/1        1 if PC relative strings is on
  44.     global_optimizer    Y    0/1        1 if the optimizer is enabled
  45.     gopt_time            Y    0/1        1 if optimizing for time, false if for space
  46.     gopt_dead_assign    N    0/1        1 if performing dead assignment elimination
  47.     gopt_dead_variable    N    0/1        1 if performing dead variable elimination
  48.     gopt_cse            N    0/1        1 if performing CSE elimination
  49.     gopt_vbe            N    0/1        1 if hoisting very busy expressions
  50.     gopt_loop_invariant    N    0/1        1 if performing loop invariant 
  51.     gopt_loop_induction    N    0/1        1 if performing loop induction
  52.     gopt_const_prop        N    0/1        1 if performing constant propagation
  53.     gopt_copy_prop        N    0/1        1 if performing copy propagation
  54.     gopt_loop            N    0/1        1 if looping until cannot optimize
  55.     force_frame            Y    0/1        1 if always generating stack frames
  56.     profile                Y    0/1        1 if using the profiler
  57.     macsbug_names+        Y    0/1        1 if generating macsbug names
  58.     dont_inline            Y    0/1        1 when using function calls for inlines
  59.     stop_at_first_err    Y    0/1        1 when stopping at the first reported error
  60.     report_all_err        Y    0/1        1 when reporting all errors in a translation unit
  61.     generate_warn        Y    0/1        1 when reporting any warnings
  62.     warn_unintended_assign
  63.                         Y    0/1        1 when generating a warning for unintended assignment
  64.     warn_nest_comments    Y    0/1        1 when generating a warning regarding nested comments
  65.     warn_unused_expressions
  66.                         Y    0/1        1 when warning about unused expressions
  67.     warn_empty_loops    Y    0/1        1 when warning about empty loops
  68.     warn_large_auto        Y    0/1        1 when warning about large automatic variables
  69.     warn_old_style_delete
  70.                         Y    0/1        1 when warning about old style deletes
  71.     warn_missing_overloads
  72.                         Y    0/1        1 when warning about missing overloads for postfix ++/--
  73.     warn_ref_init        Y    0/1        1 when warning about invalid reference initialization
  74.     warn_used_before_set
  75.                         Y    0/1        1 when warning about a variable being used before set
  76.     warn_return_addr_auto
  77.                         Y    0/1        1 when warning about returning the address of an automatic
  78.     warn_unrecognized_pragma
  79.                         Y    0/1        1 when warning about unrecognized pragmas
  80.     warn_old_style_definition
  81.                         Y    0/1        1 when warning about old-style function definitions
  82.     warn_cast_incomplete_type
  83.                         Y    0/1        1 when warning about casts from incomplete types
  84.     a4_globals*+        N    0/1        1 when a4 globals are being used
  85.     far_code+            N    0/1        1 when compiling far code
  86.     far_data+            N    0/1        1 when compiling far data
  87.     jump_table+            N    0/1        1 when compiling with a jump table
  88.     separate_strs$*        N    0/1        1 when using 68K THINK C and seperate strs
  89.     int_4$*                N    0/1        0 only when using 2 byte int in THINK C
  90.     native_fp$*            N    0/1        1 when using native_fp option in THINK C
  91.     stdc$*                N    0/1        1 when using the Symantec C compiler
  92.     trigraphs$*            N    0/1        1 when recognizing trigraphs
  93.     thinkc$*            N    0/1        1 when using THINK C extensions in THINK C
  94.     objectc$*            N    0/1        1 when using object extensions to THINK C
  95.     signed_pstrs$*        N    0/1        1 when using signed pascal strings THINK C
  96.     align_arrays$*        N    0/1        1 when using THINK C align arrays
  97.     virtual$*            N    0/1        1 when methods virtual by default - THINK C     
  98.     indirect$*            N    0/1        1 when methods indirect by default-THINK C     
  99.     class_names$*        N    0/1        1 when generating class names in THINK C
  100.     check_ptrs$*        N    0/1        1 when checking pointer types in THINK C
  101.     require_protos$*    N    0/1        1 when requiring prototypes or using C++
  102.     infer_protos$*        N    0/1        1 when using infer prototypes in THINK C",
  103.     long_macsbug_names$*N    0/1        1 when using long macsbug names format
  104.     gopt_induction$*    N    0/1        1 when using THINK C loop induction opt
  105.     gopt_coloring$*        N    0/1        1 when using THINK C coloring opt
  106.     defer_adjust$*        N    0/1        1 when using defer stack adjust in THINK C
  107.     redundant_loads$*    N    0/1        1 when eliminating redundant loads in THINK 
  108.     honor_register$*    N    0/1        1 when honoring registers in THINK
  109.     assign_registers$*    N    0/1        1 when assigning registers in THINK
  110.     mapcr#                N    0/1        1 when \r is mapped to \n    
  111.  
  112. * = settable THINK only
  113. + = Not settable available in PowerPC compiler versions
  114. # = not settable in 68K compilers
  115. $ = 68K THINK C compatibility option
  116.  
  117. - Fixes problem with -= of constants
  118.  
  119. - Fixes problem with INFO template not in 'PowerPC C++'
  120.  
  121. - Fixes problem with assigning to an array of structs
  122.  
  123. - Fixes problem assigning an integer constant to a double
  124.  
  125. - Fixes problems with treatment of integer constants in the range 32768-65535
  126.   being treated as signed with regards sign extension
  127.  
  128. - Fixes problem with register tracking when calling functions by pointer
  129.   with mixed floating and integer arguments.
  130.  
  131. - Fixes problem with functions returning a struct that get passed to another function
  132.   
  133. - Fixes a bug with floating point comparisons in loops
  134.  
  135. - Fixes problems with certain nested constructor calls
  136.  
  137. - Fixes an internal error with certain reference parameters
  138.  
  139. - Fixes a problem with generating . on function names erroneously (Unreported)
  140.  
  141. - The problem with conversions of doubles to unsigned shorts with 68881 code generation
  142.  
  143. - The problem with structure valued returns and passing the hidden argument to functions
  144.  
  145. - Fixes the type of integer constants.  This can be detected only through
  146. function overloading and did not affect constants otherwise (Unreported)
  147.  
  148. - The PowerPC compiler disassemblies will now contain full symbolics and will
  149. be properly unmangled.  Also fixes the problem with relative branches not showing
  150. the correct absolute target address.
  151.  
  152. - Fixes a problem with near data generating far references to virtual function tables
  153.  
  154. - Changes the way that error messages are generated.  Error messages should now contain
  155.   the full signatures of functions when function level errors are reported.
  156.  
  157. - Fixes problem with generating profile information causing an internal error
  158.  
  159. - Improves the performance of XSYM generation.  This improves XSYM generation time
  160.   by 31%.
  161.  
  162.